1. Field of the Invention
The invention relates generally to data storage devices and more particularly to First-In-First-Out (FIFO) type data storage devices that include an over-write protection feature and diagnostic capabilities.
In practice the invention enables limited hardware resources to be used to fabricate a "single port" FIFO storage device (as defined hereinafter) having the desired over-write protection feature and diagnostic capabilities. The single port FIFO storage device contemplated by the invention is as robust (feature rich) and can be used as safely as more elaborate, hardware-consuming, FIFO devices, such as a traditional "dual port" FIFO (also defined hereinafter).
Further specific aspects of the invention are directed to methods and apparatus for providing a single port FIFO storage device which has (a) a write protection feature to ensure that FIFO memory contents are not disturbed once the FIFO memory becomes full; (b) a first diagnostic feature to provide host software with an indication that the protection feature is in-force; and (c) a second diagnostic feature which provides host software with an indication that it (the software) may have errantly attempted to disturb a full FIFO memory (defined herein as an "Errant Write" condition) before securely and completely emptying the FIFO memory's contents.
2. Description of the Related Art
It is well known to utilize commercially available memory devices, such as Random Access Memory (RAM), to at least temporarily store data in a digital computer that includes a host processor coupled to the memory via a data bus and a memory control bus. Typically, software being executed by the host processor stores (writes) data to such memory and when desired retrieves (reads) data stored in the memory. A memory controller is commonly used to control read and write activity in response to signals from the processor (received over the memory control bus) and in response to internal memory conditions (such as when the memory becomes full, etc.)
It is also well known to use a variety of data storage and retrieval techniques to improve the operating characteristics and efficiency of a computing system and data storage devices contained therein. In some cases the nature of the data being processed dictates the most efficient data storage and retrieval technique to be used.
For example, it may in some applications be desirable to process the last (most recent) data entry stored in a memory before processing prior ("older") entries. In this case a well known storage and retrieval technique, commonly referred to by those skilled in the art as a Last-In-First-Out ("LIFO") technique, may be used; with the memory, memory addressing mechanism and controller being used to implement this technique being collectively referred to as a LIFO storage device.
In other applications, such as those supported by the present invention, it is desirable to always process the first (and after the first the next "oldest") data entry stored in a memory before processing any more recent entry. In this case a well known storage and retrieval technique, commonly referred to by those skilled in the art as a First-In-First-Out ("FIFO") technique, may be used; with the memory, memory addressing mechanism and controller being used to implement this technique being collectively referred to as a FIFO storage device (or simply a FIFO).
FIFO storage devices (also referred to herein as FIFO memories and FIFOs) are well known to those skilled in the art. A traditional commercially available FIFO memory is a "dual port" device, that is it permits the simultaneous storing and emptying of data (or permits these operations in an interleaved fashion); and includes two address counters, an arbitration mechanism to manage the simultaneous storing and emptying of data, a comparator of the two address counters to determine the "full" condition, etc.
As used herein the term "single port" storage device is defined as a storage device that does not permit the simultaneous (or interleaved) storing and emptying of data. Such a device is considerably simpler and less expensive than a traditional dual port FIFO since it would not require the aforementioned pair of address counters, arbitration mechanism and comparator.
In view of the complexity of dual port FIFOs from a hardware perspective (and cost of same), it would be desirable to provide single port storage devices (and corresponding methods for operating such devices), that are as safe to operate as more elaborate, hardware-consuming, dual port FIFO storage devices.
More particularly, it would be desirable to provide a single port storage device (and corresponding methods for operating such a device), that offers an over-write protection feature and diagnostic capabilities to ensure safe operation; while at the same time requiring only limited hardware resources when compared with a traditional dual port FIFO storage device.
Specifically, it would be desirable to provide methods and apparatus for realizing a single port FIFO storage device which has (a) a write protection feature to ensure that the FIFO contents are not disturbed once the FIFO becomes full; (b) a first diagnostic feature to provide host software with an indication that the protection feature is in-force; and (c) a second diagnostic feature which provides host software with an indication that it (the software) may have errantly attempted to disturb a full FIFO before securely and completely emptying the FIFO's contents.
Still further, it would be desirable to provide a single port FIFO storage device (and corresponding methods for operating same) that can be easily implemented using field programmable gate array (FPGA) technology to reduce hardware complexity and cost when compared with the hardware (and methods) presently used to fabricate (operate) traditional dual port FIFO storage devices.